package com.asman.vr

/**
 *    author : ybk
 *    date   : 2019-07-25 16:30
 *    desc   :
 */
interface OnJSBridgeCallBack {
    /**
     * 打开原生页面
     * @param uri 原生路由地址
     */
    fun jump2NativePage(uri: String)

    /**
     * JS 唤起原生分享dialog
     */
    fun showShareView()

    /**
     * 分享到微信小程序
     */
    fun shareWXMiniProgram(shareMiniProgramInfo: ShareMiniProgramInfo)

    /**
     * 获取用户信息
     * @return UserInfoRes
     */
    fun getUserInfo(callBack: ((userInfo: UserInfoRes) -> Unit)? = null)

    /**
     * 显示或者隐藏标题栏
     * @param isHidden 1:隐藏，0:显示
     */
    fun topNavigationBar(isHidden: Int)

    /**
     * 网页返回上一层
     */
    fun goBack()

    /**
     * 关闭当前webView的Activity页面
     */
    fun closeNativeView()

    /**
     * 开始录音
     * 正真开始录音回调
     */
    fun recordBegin(callBack: (() -> Unit)? = null)

    /**
     * 结束录音，返回录音base64
     */
    fun getRecord(callBack: ((base64: String?, isSuccess: Boolean?) -> Unit))

    /**
     * 停止录音
     */
    fun stopRecord()

    /**
     * 保存全局变量到本地存储中
     */
    fun saveLocalParamData(key: String, value: String)

    /**
     * 从本地存储中获取该变量
     */
    fun getLocalParamData(key: String): String?

    /**
     * 获取状态栏的高度
     */
    fun getStatusBarHeight(): Int

    ///////////////////////////// FIXME 后期废弃下面的跳转页面 使用jump2NativePage方式
    /**
     * 跳转到设计师页面
     */
    fun switchToDesignerShopView(designer: DesignerDetailParam)

    /**
     * 跳转到报价单
     */
    fun switchToQuotationView(decorationInfo: DecorateDetailParam)

    /**
     * 跳转到登录页
     */
    fun showLoginView(): UserInfoRes

    /**
     * 跳转到分享中转页
     */
    fun showSharePageView(info: SharePageViewParam)

    /**
     * 跳转商品详情页面
     */
    fun showGoodsDetailView(info: GoodsDetailParam)

    ////////

    /**
     * 实时音视频 相关功能
     */
    fun callAppTrtc(info: CallAppTrtc, callBack: ((resp: BaseJSBridgeDataT<Boolean>) -> Unit))

    /**
     * 获取App本地版本号
     */
    fun getVersion(): String

}